Button = {}
BU = {}

bxx, bxy = 0, 0

function Button.init (sc, X, Y, Long, Haut, texte, but)
  
  local bu = tostring (but)
  
  BU[bu] = {}
  
  BU[bu].scr = sc
  
  BU[bu].x = X
  BU[bu].y = Y
  
  BU[bu].x2 = X + Long
  BU[bu].y2 = Y + Haut
  
  BU[bu].txt = texte
  BU[bu].txtx = (BU[bu].x+Long/2)-((string.len (BU[bu].txt)*6)/2)
  BU[bu].txty = (BU[bu].y+Haut/2)-(9/2)
  
  BU[bu].c_1 = c_griswin
  BU[bu].c_2 = c_noir
  
  BU[bu].box = newBox (BU[bu].x, BU[bu].y, BU[bu].x2, BU[bu].y2)

end

function Button.draw (but)
  
  local bu = tostring (but)
  
  if Stylus.held then
    bxx = Stylus.X
    bxy = Stylus.Y
  end
  
  screen.drawRect (BU[bu].scr, BU[bu].x, BU[bu].y, BU[bu].x2, BU[bu].y2, c_gris)
  screen.drawRect (BU[bu].scr, BU[bu].x+1, BU[bu].y+1, BU[bu].x2-1, BU[bu].y2-1, BU[bu].c_1)
  screen.drawLine (BU[bu].scr, BU[bu].x+2, BU[bu].y2-2, BU[bu].x2-1, BU[bu].y2-2, BU[bu].c_2)
  screen.drawLine (BU[bu].scr, BU[bu].x2-2, BU[bu].y+2, BU[bu].x2-2, BU[bu].y2-2, BU[bu].c_2)
  screen.drawFillRect (BU[bu].scr, BU[bu].x+2, BU[bu].y+2, BU[bu].x2-2, BU[bu].y2-2, c_gris)
  screen.print (BU[bu].scr, BU[bu].txtx, BU[bu].txty, BU[bu].txt, c_noir)
    
  if Stylus.heldinBox (BU[bu].box, bxx, bxy) then
    BU[bu].c_1 = c_noir
    BU[bu].c_2 = c_griswin
  else 
    BU[bu].c_1 = c_griswin
    BU[bu].c_2 = c_noir
  end
end

function Button.clicked (but)
  local bu = tostring (but)
  
  local clicked = false
  
  if Stylus.newPressinBox (BU[bu].box, bxx, bxy) then
    clicked = true
  end
  
  return clicked
end

function Button.clear (but)
  local bu = tostring (but)
  
  BU[bu] = nil
  bxx = nil
  bxy = nil
end

